 #include <ctime>
 #include <iostream>
 #include <fstream>

 using namespace std;

 void bubbleSort(int list[], int listLength) {
         while(listLength--)   {
                 bool swapped = false;

                 for(int i = 0; i< listLength; i++) {
                         if(list[i] > list[i + 1]){
                                 swap(list[i], list[i+1]);
                                 swapped = true;
                         }
                 }

                 if(swapped == false) break;

         }
}

void read_from_file(const char *filename, int a[], int length) {
    ifstream file(filename);

    for(int i=0; i < length; i++)
        file >> a[i];
}

int main()
{
    #define LEN 5000
    int a[LEN];

    read_from_file("m1_sorted.txt",a,LEN);
    unsigned int t_start = clock();
    bubbleSort(a,LEN);
    unsigned int t_finish = clock();
    unsigned int t_work = t_finish - t_start;
    cout<<"m1_sorted " << t_work << " milliseconds \n";

    read_from_file("m2_reverse.txt",a,LEN);
    t_start = clock();
    bubbleSort(a,LEN);
    t_finish = clock();
    t_work = t_finish - t_start;
    cout<<"m2_reverse " << t_work << " milliseconds \n";

     read_from_file("m3_shuffile.txt",a,LEN);
    t_start = clock();
    bubbleSort(a,LEN);
    t_finish = clock();
    t_work = t_finish - t_start;
    cout<<"m3_shuffile " << t_work << " milliseconds \n";

    return 0;
}
